import java.util.*; 
import java.io.*;
import edu.vanderbilt.isis.sm.*; 
import edu.vanderbilt.isis.sm.Pseudostate.Kind; 
import edu.vanderbilt.isis.sm.properties.*; 
import com.martiansoftware.jsap.*;
public class TopLevelTimerVPC { 
	public StateMachine sm = new StateMachine(); 
	public Interpreter sim; 
	public TopLevelTimerVPC() { }
	public static void main(String[] args) throws Exception {
		TopLevelTimerVPC example = new TopLevelTimerVPC();
		FlaggedOption semantics = new FlaggedOption("semantics")
			.setStringParser(JSAP.STRING_PARSER)
	        .setDefault("SF")
	        .setRequired(false)
	        .setShortFlag('s')
	        .setLongFlag("semantics");
		FlaggedOption dataProviderArg = new FlaggedOption("dataProvider")
			.setStringParser(JSAP.STRING_PARSER)
	        .setDefault("CommandLine")
	        .setRequired(false)
	        .setShortFlag('d')
	        .setLongFlag("dataProvider");
		FlaggedOption maxSteps = new FlaggedOption("maxSteps")
			.setStringParser(JSAP.INTEGER_PARSER)
	        .setDefault("10")
	        .setRequired(false)
	        .setShortFlag(JSAP.NO_SHORTFLAG)
	        .setLongFlag("maxSteps");
		FlaggedOption csvFile = new FlaggedOption("csvFilePath")
			.setStringParser(JSAP.STRING_PARSER)
	        .setDefault("")
	        .setRequired(false)
	        .setShortFlag('c')
	        .setLongFlag("csvFile");
		Switch checkOutputSw = new Switch("checkOutput")
	        .setShortFlag(JSAP.NO_SHORTFLAG)
	        .setLongFlag("checkOutput");
		FlaggedOption looperArg = new FlaggedOption("looper")
			.setStringParser(JSAP.STRING_PARSER)
	        .setDefault("Default")
	        .setRequired(false)
	        .setShortFlag('l')
	        .setLongFlag("looper");
		Switch checkPropertiesSw = new Switch("checkProperties").setShortFlag(
				JSAP.NO_SHORTFLAG).setLongFlag("checkProperties");

		JSAP jsap = new JSAP();
		jsap.registerParameter(semantics);
		jsap.registerParameter(dataProviderArg);
		jsap.registerParameter(csvFile);
		jsap.registerParameter(checkOutputSw);
		jsap.registerParameter(maxSteps);
		jsap.registerParameter(looperArg);
		jsap.registerParameter(checkPropertiesSw);
		JSAPResult config = jsap.parse(args);

		IDataProvider dataProvider = new CommandLineDataProvider();
		IDataPrinter dataPrinter = null;
		ILooper looper = new DefaultLooper();
		List<Pattern> patterns = new ArrayList<Pattern>();

		if (config.getString("dataProvider").toUpperCase().equals("CSV")) {
			String fileName = config.getString("csvFilePath");
			boolean checkOutput = config.getBoolean("checkOutput");
			CSVDataProvider csvDP = new CSVDataProvider(fileName, checkOutput);
			dataProvider = csvDP;
			if (checkOutput){
				dataPrinter = csvDP;
			}
		}
		if (config.getString("dataProvider").toUpperCase().equals("SYMBOLIC")) {
			int steps = config.getInt("maxSteps");
			SymbolicDataProvider sDP = new SymbolicDataProvider(steps);
			dataProvider = sDP;
		}

		if (config.getString("looper").toUpperCase().equals("NONDETERMINISTIC")){
			looper = new NondeterministicLooper();
		}

		if (config.getBoolean("checkProperties")) {
			patterns = example.makeProperties(example.r1.TimerVPC3);
		}

		IDataReader dataReader = new TimerVPCReader(example.r1.TimerVPC3, dataProvider, dataPrinter);
		if (config.getString("semantics").toUpperCase().equals("UML")) {
			example.sim = new UMLInterpreter(example.sm, dataReader, looper);
		}
		else if (config.getString("semantics").toUpperCase().equals("RHAPSODY")) {
			example.sim = new RhapsodyInterpreter(example.sm, dataReader, looper);
		}
		else {
			example.sim = new StateflowInterpreter(example.sm, dataReader, looper, patterns);
		}
		example.sim.getLooper().setInterpreter(example.sim);
		example.initializeTransitions();
		example.DoSim();
}
	public void DoSim() { 
		this.sim.initialize(); 
		this.sim.dataAndEventLoop();
	} 
	public List<Pattern> makeProperties(REGION_T.STATE_T s) { 
		ArrayList<Pattern> patterns = new ArrayList<Pattern>(); 
		return patterns; 
	}
	public class REGION_T extends Region { 
	public REGION_T(IRegionParent parent, int order) { 
		super(parent, order); 
	} 
	public Pseudostate p8 = new Pseudostate(this, Kind.INITIAL);
	public class STATE_T extends State {
	public boolean var3  = false ;
public boolean var1  = false ;
public boolean var2  = false ;
public boolean var4  = false ;
public boolean var5  = false ;
public boolean reset  = false ;
public boolean var6  = false ;
		public STATE_T( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
	public class RegionR32 extends Region { 
	public RegionR32(IRegionParent parent, int order) { 
		super(parent, order); 
	} 
	public Pseudostate p22 = new Pseudostate(this, Kind.INITIAL);
	public class StateVar125 extends State {
			public StateVar125( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
	public class RegionR31 extends Region { 
	public RegionR31(IRegionParent parent, int order) { 
		super(parent, order); 
	} 
	public Pseudostate p7 = new Pseudostate(this, Kind.INITIAL);
	public class StateV1False26 extends State {
			public StateV1False26( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
		public void entryAction() {
		  var1 = 0 != 0;
;
		}
	}
	public StateV1False26 V1False23 = new StateV1False26("V1False", this, false );
	public class StateV1True27 extends State {
			public StateV1True27( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
		public void entryAction() {
		  var1 = 1 != 0;
;
		}
	}
	public StateV1True27 V1True24 = new StateV1True27("V1True", this, false );
	public class Transition11 extends Transition { 
		public Transition11( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers12 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition11 p10 = new Transition11( V1False23, V1True24, this, triggers12, 1);
	public class Transition14 extends Transition { 
		public Transition14( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public boolean guard(IEventHolder holder) {
			return reset == ( 1 != 0 );
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers15 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition14 p13 = new Transition14( V1True24, V1False23, this, triggers15, 2);
	public class Transition17 extends Transition { 
		public Transition17( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers18 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition17 p16 = new Transition17( p7, V1False23, this, triggers18, 1);
	public class Transition20 extends Transition { 
		public Transition20( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public boolean guard(IEventHolder holder) {
			return reset == ( 0 != 0 );
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers21 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition20 p19 = new Transition20( V1True24, V1True24, this, triggers21, 1);
}
public RegionR31 r28 = new RegionR31( this, 0 );
	}
	public StateVar125 Var122 = new StateVar125("Var1", this, false );
	Transition p23 = new Transition(p22, Var122, this, new Event(""));
}
public RegionR32 r27 = new RegionR32( this, 1 );
	public class RegionR34 extends Region { 
	public RegionR34(IRegionParent parent, int order) { 
		super(parent, order); 
	} 
	public Pseudostate p36 = new Pseudostate(this, Kind.INITIAL);
	public class StateVar228 extends State {
			public StateVar228( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
	public class RegionR33 extends Region { 
	public RegionR33(IRegionParent parent, int order) { 
		super(parent, order); 
	} 
	public Pseudostate p6 = new Pseudostate(this, Kind.INITIAL);
	public class StateV2False29 extends State {
			public StateV2False29( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
		public void entryAction() {
		  var2 = 0 != 0;
;
		}
	}
	public StateV2False29 V2False20 = new StateV2False29("V2False", this, false );
	public class StateV2True30 extends State {
			public StateV2True30( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
		public void entryAction() {
		  var2 = 1 != 0;
;
		}
	}
	public StateV2True30 V2True21 = new StateV2True30("V2True", this, false );
	public class Transition25 extends Transition { 
		public Transition25( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers26 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition25 p24 = new Transition25( p6, V2False20, this, triggers26, 1);
	public class Transition28 extends Transition { 
		public Transition28( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers29 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition28 p27 = new Transition28( V2False20, V2True21, this, triggers29, 1);
	public class Transition31 extends Transition { 
		public Transition31( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public boolean guard(IEventHolder holder) {
			return reset == ( 1 != 0 );
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers32 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition31 p30 = new Transition31( V2True21, V2False20, this, triggers32, 2);
	public class Transition34 extends Transition { 
		public Transition34( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public boolean guard(IEventHolder holder) {
			return reset == ( 0 != 0 );
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers35 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition34 p33 = new Transition34( V2True21, V2True21, this, triggers35, 1);
}
public RegionR33 r24 = new RegionR33( this, 0 );
	}
	public StateVar228 Var219 = new StateVar228("Var2", this, false );
	Transition p37 = new Transition(p36, Var219, this, new Event(""));
}
public RegionR34 r23 = new RegionR34( this, 2 );
	public class RegionR36 extends Region { 
	public RegionR36(IRegionParent parent, int order) { 
		super(parent, order); 
	} 
	public Pseudostate p50 = new Pseudostate(this, Kind.INITIAL);
	public class StateVar331 extends State {
			public StateVar331( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
	public class RegionR35 extends Region { 
	public RegionR35(IRegionParent parent, int order) { 
		super(parent, order); 
	} 
	public Pseudostate p2 = new Pseudostate(this, Kind.INITIAL);
	public class StateV3False32 extends State {
			public StateV3False32( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
		public void entryAction() {
		  var3 = 0 != 0;
;
		}
	}
	public StateV3False32 V3False8 = new StateV3False32("V3False", this, false );
	public class StateV3True33 extends State {
			public StateV3True33( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
		public void entryAction() {
		  var3 = 1 != 0;
;
		}
	}
	public StateV3True33 V3True9 = new StateV3True33("V3True", this, false );
	public class Transition39 extends Transition { 
		public Transition39( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public boolean guard(IEventHolder holder) {
			return reset == ( 1 != 0 );
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers40 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition39 p38 = new Transition39( V3True9, V3False8, this, triggers40, 2);
	public class Transition42 extends Transition { 
		public Transition42( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers43 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition42 p41 = new Transition42( p2, V3False8, this, triggers43, 1);
	public class Transition45 extends Transition { 
		public Transition45( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers46 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition45 p44 = new Transition45( V3False8, V3True9, this, triggers46, 1);
	public class Transition48 extends Transition { 
		public Transition48( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public boolean guard(IEventHolder holder) {
			return reset == ( 0 != 0 );
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers49 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition48 p47 = new Transition48( V3True9, V3True9, this, triggers49, 1);
}
public RegionR35 r8 = new RegionR35( this, 0 );
	}
	public StateVar331 Var37 = new StateVar331("Var3", this, false );
	Transition p51 = new Transition(p50, Var37, this, new Event(""));
}
public RegionR36 r7 = new RegionR36( this, 3 );
	public class RegionR38 extends Region { 
	public RegionR38(IRegionParent parent, int order) { 
		super(parent, order); 
	} 
	public Pseudostate p64 = new Pseudostate(this, Kind.INITIAL);
	public class StateVar434 extends State {
			public StateVar434( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
	public class RegionR37 extends Region { 
	public RegionR37(IRegionParent parent, int order) { 
		super(parent, order); 
	} 
	public Pseudostate p5 = new Pseudostate(this, Kind.INITIAL);
	public class StateV4False35 extends State {
			public StateV4False35( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
		public void entryAction() {
		  var4 = 0 != 0;
;
		}
	}
	public StateV4False35 V4False17 = new StateV4False35("V4False", this, false );
	public class StateV4True36 extends State {
			public StateV4True36( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
		public void entryAction() {
		  var4 = 1 != 0;
;
		}
	}
	public StateV4True36 V4True18 = new StateV4True36("V4True", this, false );
	public class Transition53 extends Transition { 
		public Transition53( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers54 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition53 p52 = new Transition53( p5, V4False17, this, triggers54, 1);
	public class Transition56 extends Transition { 
		public Transition56( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers57 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition56 p55 = new Transition56( V4False17, V4True18, this, triggers57, 1);
	public class Transition59 extends Transition { 
		public Transition59( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public boolean guard(IEventHolder holder) {
			return reset == ( 1 != 0 );
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers60 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition59 p58 = new Transition59( V4True18, V4False17, this, triggers60, 2);
	public class Transition62 extends Transition { 
		public Transition62( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public boolean guard(IEventHolder holder) {
			return reset == ( 0 != 0 );
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers63 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition62 p61 = new Transition62( V4True18, V4True18, this, triggers63, 1);
}
public RegionR37 r20 = new RegionR37( this, 0 );
	}
	public StateVar434 Var416 = new StateVar434("Var4", this, false );
	Transition p65 = new Transition(p64, Var416, this, new Event(""));
}
public RegionR38 r19 = new RegionR38( this, 4 );
	public class RegionR40 extends Region { 
	public RegionR40(IRegionParent parent, int order) { 
		super(parent, order); 
	} 
	public Pseudostate p78 = new Pseudostate(this, Kind.INITIAL);
	public class StateVar537 extends State {
			public StateVar537( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
	public class RegionR39 extends Region { 
	public RegionR39(IRegionParent parent, int order) { 
		super(parent, order); 
	} 
	public Pseudostate p1 = new Pseudostate(this, Kind.INITIAL);
	public class StateV5True38 extends State {
			public StateV5True38( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
		public void entryAction() {
		  var5 = 1 != 0;
;
		}
	}
	public StateV5True38 V5True5 = new StateV5True38("V5True", this, false );
	public class StateV5False39 extends State {
			public StateV5False39( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
		public void entryAction() {
		  var5 = 0 != 0;
;
		}
	}
	public StateV5False39 V5False6 = new StateV5False39("V5False", this, false );
	public class Transition67 extends Transition { 
		public Transition67( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers68 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition67 p66 = new Transition67( p1, V5False6, this, triggers68, 1);
	public class Transition70 extends Transition { 
		public Transition70( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public boolean guard(IEventHolder holder) {
			return reset == ( 1 != 0 );
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers71 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition70 p69 = new Transition70( V5True5, V5False6, this, triggers71, 2);
	public class Transition73 extends Transition { 
		public Transition73( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers74 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition73 p72 = new Transition73( V5False6, V5True5, this, triggers74, 1);
	public class Transition76 extends Transition { 
		public Transition76( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public boolean guard(IEventHolder holder) {
			return reset == ( 0 != 0 );
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers77 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition76 p75 = new Transition76( V5True5, V5True5, this, triggers77, 1);
}
public RegionR39 r4 = new RegionR39( this, 0 );
	}
	public StateVar537 Var54 = new StateVar537("Var5", this, false );
	Transition p79 = new Transition(p78, Var54, this, new Event(""));
}
public RegionR40 r3 = new RegionR40( this, 5 );
	public class RegionR42 extends Region { 
	public RegionR42(IRegionParent parent, int order) { 
		super(parent, order); 
	} 
	public Pseudostate p92 = new Pseudostate(this, Kind.INITIAL);
	public class StateVar640 extends State {
			public StateVar640( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
	public class RegionR41 extends Region { 
	public RegionR41(IRegionParent parent, int order) { 
		super(parent, order); 
	} 
	public Pseudostate p4 = new Pseudostate(this, Kind.INITIAL);
	public class StateV6True41 extends State {
			public StateV6True41( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
		public void entryAction() {
		  var6 = 1 != 0;
;
		}
	}
	public StateV6True41 V6True14 = new StateV6True41("V6True", this, false );
	public class StateV6False42 extends State {
			public StateV6False42( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
		public void entryAction() {
		  var6 = 0 != 0;
;
		}
	}
	public StateV6False42 V6False15 = new StateV6False42("V6False", this, false );
	public class Transition81 extends Transition { 
		public Transition81( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers82 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition81 p80 = new Transition81( p4, V6False15, this, triggers82, 1);
	public class Transition84 extends Transition { 
		public Transition84( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers85 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition84 p83 = new Transition84( V6False15, V6True14, this, triggers85, 1);
	public class Transition87 extends Transition { 
		public Transition87( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public boolean guard(IEventHolder holder) {
			return reset == ( 1 != 0 );
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers88 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition87 p86 = new Transition87( V6True14, V6False15, this, triggers88, 2);
	public class Transition90 extends Transition { 
		public Transition90( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public boolean guard(IEventHolder holder) {
			return reset == ( 0 != 0 );
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers91 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition90 p89 = new Transition90( V6True14, V6True14, this, triggers91, 1);
}
public RegionR41 r16 = new RegionR41( this, 0 );
	}
	public StateVar640 Var613 = new StateVar640("Var6", this, false );
	Transition p93 = new Transition(p92, Var613, this, new Event(""));
}
public RegionR42 r15 = new RegionR42( this, 6 );
	public class RegionR44 extends Region { 
	public RegionR44(IRegionParent parent, int order) { 
		super(parent, order); 
	} 
	public Pseudostate p100 = new Pseudostate(this, Kind.INITIAL);
	public class StateReset43 extends State {
			public StateReset43( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
	public class RegionR43 extends Region { 
	public RegionR43(IRegionParent parent, int order) { 
		super(parent, order); 
	} 
	public Pseudostate p3 = new Pseudostate(this, Kind.INITIAL);
	public class StateResetFalse44 extends State {
			public StateResetFalse44( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
		public void entryAction() {
		  reset = 0 != 0;
;
		}
	}
	public StateResetFalse44 ResetFalse11 = new StateResetFalse44("ResetFalse", this, false );
	public class StateResetTrue45 extends State {
			public StateResetTrue45( String name, Region parent, boolean isFinal ) { 
			super( name, parent, isFinal ); 
		} 
		public void entryAction() {
		  reset = 1 != 0;
;
		}
	}
	public StateResetTrue45 ResetTrue12 = new StateResetTrue45("ResetTrue", this, false );
	public class Transition95 extends Transition { 
		public Transition95( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers96 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition95 p94 = new Transition95( p3, ResetFalse11, this, triggers96, 1);
	public class Transition98 extends Transition { 
		public Transition98( IVertex source, IVertex target, Region parent, List<Event> triggers, int priority ) {
			super( source, target, parent, triggers, priority);
		}
		public boolean guard(IEventHolder holder) {
			return var1 && var2 && var3 && var4 && var5 && var6;
		}
		public void action(IEventHolder holder) {
			;
		}
		public void conditionAction(IEventHolder holder) {
			;
		}
	}
	ArrayList<Event> triggers99 = new ArrayList<Event>() { {
		add(new Event(""));
	} };
	Transition98 p97 = new Transition98( ResetFalse11, ResetTrue12, this, triggers99, 1);
}
public RegionR43 r12 = new RegionR43( this, 0 );
	}
	public StateReset43 Reset10 = new StateReset43("Reset", this, false );
	Transition p101 = new Transition(p100, Reset10, this, new Event(""));
}
public RegionR44 r11 = new RegionR44( this, 7 );
	}
	public STATE_T TimerVPC3 = new STATE_T("TimerVPC", this, false );
	Transition p9 = new Transition(p8, TimerVPC3, this, new Event(""));
}
public REGION_T r1 = new REGION_T( sm, 0 );
	public void initializeTransitions() {
	}
}
